package com.demo.java.OD1_50.OD9;

import java.util.*;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【按身高和体重排队问题；排序规则：身高升序 -> 体重升序 -> 按原始编号保持顺序】
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145503430
 */
public class OdMain {

    // 学生类，包含编号、身高和体重
    static class Student implements Comparable<Student> {
        private int idx;  // 学生编号
        private int high; // 身高
        private int weight; // 体重

        // 构造函数
        public Student(int idx, int high, int weight) {
            this.idx = idx;
            this.high = high;
            this.weight = weight;
        }

        // 实现compareTo方法，用于排序
        @Override
        public int compareTo(Student stu) {
            // 按身高升序排序
            if (this.high != stu.high) {
                return Integer.compare(this.high, stu.high);
            }
            // 如果身高相同，按体重升序排序
            if (this.weight != stu.weight) {
                return Integer.compare(this.weight, stu.weight);
            }
            // 如果身高和体重都相同，按学生编号升序排序
            return Integer.compare(this.idx, stu.idx);
        }
    }

    public static void main(String[] args) {
        try (Scanner s = new Scanner(System.in)) {
            // 输入学生数
            int count = Integer.parseInt(s.nextLine());

            // 输入身高和体重
            String[] highStr = s.nextLine().split(" ");
            String[] weightStr = s.nextLine().split(" ");

            // 创建学生列表
            List<Student> studentList = new ArrayList<>();
            for (int i = 0; i < count; ++i) {
                studentList.add(new Student(i + 1, Integer.parseInt(highStr[i]), Integer.parseInt(weightStr[i])));
            }

            // 排序学生列表
            Collections.sort(studentList);

            // 输出排序后的学生编号
            for (Student student : studentList) {
                System.out.print(student.idx + " ");
            }
        } catch (Exception e) {
            System.out.println("输入错误: " + e.getMessage());
        }
    }
}
